#!/bin/sh
#
# JAVA工具
#
# @author liuzy
# @since 2016-07-02

F_debug "F_F" "加载java.sh"

### 检查是否已安装JAVA
F_isInstall "java"
if [[ ${F_result} = false ]] ; then
	F_info "您没有安装JAVA，或未配置环境变量。"
else
	F_info "JAVA已安装。"
fi

### JRE和JDK下载根路径
javaDlBasePath="http://download.oracle.com/otn-pub/java/jdk"

### 默认JAVA版本号信息
java6ver="6u45"
java7ver="7u80"
java8ver="8u91"

### 获取JAVA版本号
## 参数
# $1 版本号 默认7
## 返回
# JAVA版本号
function F_getJavaVersion() {
	F_debug "F_getJavaVersion" "获取JAVA版本号"
	if [[ $1 ]] ; then
		if [[ "$1" = "6" ]] ; then
			F_return ${java6ver}
		elif [[ "$1" = "7" ]] ; then
			F_return ${java7ver}
		elif [[ "$1" = "8" ]] ; then
			F_return ${java8ver}
		fi
	else
		F_return ${java7ver}
	fi
}

### 获取JRE下载地址
## 参数
# $1 版本号 默认7
## 返回
# JRE下载地址
function F_getJreDlUrl() {
	F_debug "F_getJreDlUrl" "获取JRE下载地址"
	# 获取JDK版本号
	F_getJavaVersion $1
	version=${F_result}
	# 判断系统位数
	F_isX64
	if [[ ${F_result} = true ]] ; then
		F_return "${javaDlBasePath}/${version}-b15/jre-${version}-linux-x64.rpm"
	else
		F_return "${javaDlBasePath}/${version}-b15/jre-${version}-linux-i586.rpm"
	fi
}

### 获取JDK下载地址
## 参数
# $1 版本号 默认7
## 返回
# JDK下载地址
function F_getJdkDlUrl() {
	F_debug "F_getJdkDlUrl" "获取JDK下载地址"
	# 获取JDK版本号
	F_getJavaVersion $1
	jdkVer=${F_result}
	# 判断系统位数
	F_isX64
	if [[ ${F_result} = true ]] ; then
		F_return "${javaDlBasePath}/${jdkVer}-b15/jdk-${jdkVer}-linux-x64.rpm"
	else
		F_return "${javaDlBasePath}/${jdkVer}-b15/jdk-${jdkVer}-linux-i586.rpm"
	fi
}

### 下载指定版本JRE到当前目录
## 参数
# $1 版本号 默认7
## 返回
# 下载后的文件名
function F_dlJre() {
	F_debug "F_dlJre" "下载指定版本JRE到当前目录"
	# 获取JRE下载地址
	F_getJreDlUrl $1
	# 断点续传模式下载
	wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -c ${F_result} -O "${F_result##*/}"
	if [[ ! -f "${F_result##*/}" ]] ; then
		F_error "文件${F_result##*/}下载失败。"
		exit 1
	fi
	# 返回文件名
	F_return "${F_result##*/}"
}

### 下载指定版本JDK到当前目录
## 参数
# $1 版本号 默认7
## 返回
# 下载后的文件名
function F_dlJdk() {
	F_debug "F_dlJdk" "下载指定版本JDK到当前目录"
	# 获取JDK下载地址
	F_getJdkDlUrl $1
	# 断点续传模式下载
	wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -c ${F_result} -O "${F_result##*/}"
	if [[ ! -f "${F_result##*/}" ]] ; then
		F_error "文件${F_result##*/}下载失败。"
		exit 1
	fi
	# 返回文件名
	F_return "${F_result##*/}"
}

### 配置JAVA环境变量
## 参数
# 无
## 返回
# 无
function F_configJava() {
	if [[ ! $1 ]] ; then
		$1="jdk"
	fi
	F_debug "F_configJava" "配置JAVA环境变量"
	# 配置环境变量
	if [[ `id -u` = "0" ]] ; then
		F_info "修改/etc/profile为所有用户配置环境变量。"
		profile="/etc/profile"
	else
		F_info "修改~/.bash_profile为当前用户${USER}配置环境变量。"
		profile="${HOME}/.bash_profile"
	fi
	echo "" >> ${profile}
	echo "### config java" >> ${profile}
	echo "export JAVA_HOME=/usr/java/"$1"1."${version:0:1}".0_"${version:2:2} >> ${profile}
	echo "" >> ${profile}
	source ${profile}
	tail -10 ${profile}
	F_info "测试是否安装成功。"
	F_info "java -version"
	java -version
}

### 下载安装指定版本JRE
## 参数
# $1 版本号 默认7
## 返回
# 无
function F_installJre() {
	F_debug "F_installJre" "下载安装指定版本JRE"
	F_isInstall "java"
	if [[ ${F_result} = true ]] ; then
		F_info "您已经安装了JAVA，我不干了。"
		java -version
		exit 0
	fi
	# 下载JRE
	F_dlJre $1
	# 安装
	rpm -ivh ${F_result}
	# 若安装成功，配置环境变量
	F_isInstall "java"
	if [[ ${F_result} = true ]] ; then
		F_configJava "jdk"
	fi
}

### 下载安装指定版本JDK
## 参数
# $1 版本号 默认7
## 返回
# 无
function F_installJdk() {
	F_debug "F_installJdk" "下载安装指定版本JDK"
	F_isInstall "java"
	if [[ ${F_result} = true ]] ; then
		F_info "您已经安装了JAVA，我不干了。"
		java -version
		exit 0
	fi
<<<<<<< .mine
}

### 下载指定版本JRE到当前目录
## 参数
# $1 版本号 7
## 返回
# 下载后的文件名
function F_dlJre() {
	# 获取JRE下载地址
	F_getJreDlUrl $1
	# 下载 文件存在时，开启断点续传重下
	wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -c ${F_result} -O "${F_result##*/}"
	# 返回文件名
	F_return "${F_result##*/}"
}

### 下载安装指定版本JRE
## 参数
# $1 版本号 7
## 返回
# 无
function F_installJre() {
	# 获取JRE下载地址
	F_getJreDlUrl $1
	# 断点续传模式下载
	wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -c ${F_result} -O "${F_result##*/}"
	if [[ ! -f ${F_result##*/} ]] ; then
		F_error "文件${F_result##*/}下载失败。"
		exit 1
	else
		# 安装
		rpm -ivh ${F_result##*/}
	fi
=======
	# 下载JDK
	F_dlJdk $1
	# 安装
	rpm -ivh ${F_result}
>>>>>>> .r177
	# 若安装成功，配置环境变量
	F_isInstall "java"
	if [[ ${F_result} = true ]] ; then
		F_configJava "jre"
	fi
}
